export const transfer = {
// {a: 'b', c:'d'} 转 arr: [{filed: 'a',value:'b'},{filed: 'c',value:'d'}]
// {e: {'f': g}, h:'j'} 转 arr: [{filed: 'e',value: obj[e], 'f': g},{filed: 'h',value:'j'}]
    obj2Arr: (temp, obj = {}) => {
        /* 
        requestBodyMergeArr: {"list": [
        {"batchNo": {"matchType": "eq"}},
        {"domainCode": {"matchType": "eq"}},
        {"proType": {"matchType": "eq"}}
      ], submitArrName: ''，submitkey: "", submitValuekey: ""}
      list: ["batchNo", "domainCode", "proType"],
        list: (支持两种格式) 需添加的字段列表,如果有指定的合并对象，list内字段支持添加对象，submitArrName: 提交的数组名称，submitkey: 字段名key submitValuekey：字段值key
        */
       console.log('transfer.obj2Arr', temp, obj)
        const arr = []
        let mergeAny = {}
        if (temp.submitKey && temp.submitValueKey && temp.list && temp.list.length) {
            temp.list.map((item) => {
                if (typeof item !== 'string') {
                    const key = Object.keys(item)[0] // 结构：{field: {}}：当前field需要添加的其他{}， 一对多关系，不存在多个当前field
                    mergeAny = eval(item[key]) // 支持输入 function，obj
                    item = key
                } else {
                    mergeAny = {}
                }
                if (!obj[item]) return
                arr.push({
                    [temp.submitKey]: item,
                    [temp.submitValueKey]: obj[item],
                    ...mergeAny
                })
                delete obj[item];
            });
            if (temp.submitArrName) {
                obj[temp.submitArrName] = arr
            }
        }
        return obj;
    },
    // 示例用法  
    // const nestedObj = {  
    //     a: {  
    //         b: {  
    //             c: 'Hello, World!'  
    //         },  
    //         d: 'Another Value'  
    //     },  
    //     e: 'Top Level Value'  
    // };  
    
    // console.log(getValueFromNestedObject(nestedObj, 'a.b.c')); // 输出: Hello, World!  
    // console.log(getValueFromNestedObject(nestedObj, 'a.d')); // 输出: Another Value  
    // console.log(getValueFromNestedObject(nestedObj, 'e')); // 输出: Top Level Value  
    // console.log(getValueFromNestedObject(nestedObj, 'f.g.h')); // 输出: undefined
    getValueFromNestedObject(obj, path) {  
        // 将路径分割为数组  
        const pathArray = path.split('.');  
        // 递归函数  
        function search(obj, pathArray) {  
            if (!obj || pathArray.length === 0) {  
                // 如果对象不存在或路径为空，返回undefined  
                return undefined;  
            }  
      
            const key = pathArray.shift(); // 取出当前路径的键  
      
            // 如果键存在于对象中，继续递归搜索或返回值  
            if (key in obj) {  
                if (pathArray.length === 0) {  
                    // 如果路径已经走完，返回当前键的值  
                    return obj[key];  
                } else {  
                    // 如果还有剩余路径，继续递归搜索  
                    return search(obj[key], pathArray);  
                }  
            }  
      
            // 如果键不存在于对象中，返回undefined  
            return undefined;  
        }  
      
        // 调用递归函数并返回结果  
        return search(obj, pathArray);  
    }  
}
